From 87cf19ebb493d1f4e7862959bee9a57629a608f2 Mon Sep 17 00:00:00 2001 From: Michal Babej Date: Tue, 31 Aug 2021 09:11:52 +0300 Subject: [PATCH] [PATCH 13/90] Fix data race in compile_and_link_program() lock cl_program before touching kernels Gbp-Pq: Name 0013-Fix-data-race-in-compile_and_link_program.patch --- lib/CL/pocl_build.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/CL/pocl_build.c b/lib/CL/pocl_build.c index f2746e3..c162fae 100644 --- a/lib/CL/pocl_build.c +++ b/lib/CL/pocl_build.c @@ -611,11 +611,13 @@ compile_and_link_program(int compile_program, POCL_GOTO_LABEL_COND (PFN_NOTIFY, (pfn_notify == NULL && user_data != NULL), CL_INVALID_VALUE); - POCL_GOTO_LABEL_ON (PFN_NOTIFY, program->kernels, CL_INVALID_OPERATION, + POCL_LOCK_OBJ (program); + + POCL_GOTO_LABEL_ON (FINISH, program->kernels, CL_INVALID_OPERATION, "Program already has kernels\n"); POCL_GOTO_LABEL_ON ( - PFN_NOTIFY, + FINISH, (program->source == NULL && program->binaries == NULL && program->builtin_kernel_names == NULL), CL_INVALID_PROGRAM, @@ -623,13 +625,11 @@ compile_and_link_program(int compile_program, "need " "to call clCreateProgramWith{Binary|Source|BuiltinKernels} first\n"); - POCL_GOTO_LABEL_ON (PFN_NOTIFY, + POCL_GOTO_LABEL_ON (FINISH, ((program->source == NULL) && (link_program == 0)), CL_INVALID_OPERATION, "Cannot clCompileProgram when program has no source\n"); - POCL_LOCK_OBJ (program); - program->main_build_log[0] = 0; TP_BUILD_PROGRAM (program->context->id, program->id); -- 2.30.2